home *** CD-ROM | disk | FTP | other *** search
RISC OS BBC BASIC V Source | 1995-06-15 | 4.7 KB | 218 lines |
- >$.Wimp.Drawing
- ***********************************
- * Drawing in the WIMP Windows *
- * By Adrian Philip Look *
- * 30th December 1987 *
- ***********************************
- ("FX4,0"):
- $;" at line ";
- colour=8
- colour,0,0,255
- colour
- variables
- version=
- wimp_initialise
- flags=
- flags(
- %title_type=
- title_type(
- Rwally%=
- create_window(50,50,500,500,1000,1000,flags,"Window 1",title_type,top)
- Rhello%=
- create_window(400,400,850,850,500,500,flags,"Window 2",title_type,top)
- Uanext%=
- create_window(800,200,1000,700,1000,1000,flags,"Window 3",title_type,top)
- Swhich%=
- create_window(50,700,400,800,1000,1000,flags,"Window 4",title_type,top)
- open_window(wally%,
- open_window(hello%,
- open_window(anext%,
- open_window(which%,
- "Wimp_ForceRedraw",-1,0,0,1280,1024
- *POINTER
- "Wimp_Poll",mask,block%
- reason
- handle=!block%
- wimp_poll(reason,handle)
- variables
- block% &100
- title_foreground=1
- title_background=6
- work_area_foreground=1
- work_area_background=7
- scroll_bar_inner=1
- scroll_bar_outer=6
- top=-1
- mask=0
- amountx=100
- amounty=100
- wimp_poll(reason,handle)
- 7 *FX19
- reason
- 1 :
- redraw(!block%)
- 2 :
- open_window(handle,
- 3 :
- close_window(handle)
- 10 :
- scroll_acknowledge
- wimp_initialise
- version%
- "Wimp_Initialise",0
- version%
- =version%/100
- create_window(x0,y0,x1,y1,sizex,sizey,flags,title$,title_type,pos)
- block%!0=x0
- block%!4=y0
- block%!8=x1
- block%!12=y1
- block%!16=0
- block%!20=0
- block%!24=pos
- block%!28=flags
- block%?32=title_foreground
- block%?33=title_background
- T"block%?34=work_area_foreground
- U"block%?35=work_area_background
- block%?36=scroll_bar_outer
- block%?37=scroll_bar_inner
- block%?38=0
- block%!40=0
- block%!44=-sizey
- block%!48=sizex
- block%!52=0
- block%!56=title_type
- $(block%+72)=
- title$,11)
- block%!84=0
- "Wimp_CreateWindow",0,block%
- handle%
- =handle%
- flags(tbar,move,vscb,hscb,boqb,scrl,wimp)
- flag%
- flag%=0
- tbar
- flag%=flag%
- move
- flag%=flag%
- vscb
- flag%=flag%
- hscb
- flag%=flag%
- wimp
- flag%=flag%
- boqb
- flag%=flag%
- scrl
- flag%=flag%
- &100
- =flag%
- title_type(hasb,text,txhc,txvc,back)
- flag%
- hasb
- flag%=flag%
- text
- flag%=flag%
- txhc
- flag%=flag%
- txvc
- flag%=flag%
- back
- flag%=flag%
- =flag%
- open_window(handle,new)
- new
- block%!0=handle
- "Wimp_GetWindowInfo",,block%
- block%!28=top
- "Wimp_OpenWindow",,block%
- close_window(handle)
- !block%=handle
- "Wimp_CloseWindow",,block%
- delete_window(handle)
- !block%=handle
- "Wimp_DeleteWindow",,block%
- scroll_acknowledge
- scx=block%!20
- scy=block%!24
- scx+=(block%!32)*amountx
- scy+=(block%!36)*amounty
- block%!20=scx
- block%!24=scy
- "Wimp_OpenWindow",,block%
- redraw(handle)
- !block%=handle
- "Wimp_RedrawWindow",,block%
- more
- which_window
- which_window
- handle
- hello% :
- draw_example1
- wally% :
- draw_example2
- which% :
- draw_example3
- anext% :
- draw_example4
- draw_example1
- more
- bx+175,by-175:
- &95,bx+20,by-175
- bx+32,by-143:
- " Using the WIMP"
- bx+32,by-175:
- " by Archive"
- "Wimp_GetRectangle",,block%
- more
- draw_example2
- more
- gx0=(gx0-bx)
- 32 *32 +bx
- gy1=(gy1-by)
- 32 *32 +by
- y=gy1
- gy0-64
- x=gx0-64
- gx1
- (x/32+y/32)
- x+16,y+16:
- &9d,x+2,y+16
- "Wimp_GetRectangle",,block%
- more
- draw_example3
- more
- bx,by
- temp=0
- 0,temp
- "Hello and Welcome to Archive";
- (temp
- 5)=0
- temp
- "Wimp_GetRectangle",,block%
- more
- draw_example4
- more
- 141,gx0+1,gy0+1
- "Wimp_GetRectangle",,block%
- more
- x0=block%!4
- y0=block%!8
- x1=block%!12
- y1=block%!16
- scx=block%!20
- scy=block%!24
- gx0=block%!28
- gy0=block%!32
- gx1=block%!36
- gy1=block%!40
- :bx=x0-scx :
- all drawing should be relative to bx,by
- by=y1-scy
- update_window(handle)
- !block%=handle
- "Wimp_GetWindowState",,block%
- "Wimp_UpdateWindow",,block%
- which_window
-